package com.wyzz.hr.action;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.text.DecimalFormat;
import java.util.*;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Restrictions;
import org.springframework.util.ObjectUtils;

import com.wyzz.hr.base.FileOperate;
import com.wyzz.hr.base.io.Exportinfo;
import com.wyzz.hr.bo.ICompaplanBo;
import com.wyzz.hr.bo.IEmpBenefitPlanBo;
import com.wyzz.hr.bo.IEmpSalaryAcctitemsBo;
import com.wyzz.hr.bo.IEmpsalarydatadefBo;
import com.wyzz.hr.bo.IEmpsalaryperiodBo;
import com.wyzz.hr.bo.ISalaryPaidBo;
import com.wyzz.hr.bo.ISalaryconfBo;
import com.wyzz.hr.exportfile.ExportPayslip;
import com.wyzz.hr.exportfile.ExportSalary;
import com.wyzz.hr.exportfile.ExportSalaryToBank;
import com.wyzz.hr.pojo.Employee;
import com.wyzz.hr.pojo.Empsalaryacctversion;
import com.wyzz.hr.pojo.Empsalaryconfig;
import com.wyzz.hr.pojo.Empsalarydatadef;
import com.wyzz.hr.pojo.Empsalarypay;
import com.wyzz.hr.pojo.Empsalaryperiod;
import com.wyzz.hr.pojo.Emptype;
import com.wyzz.hr.pojo.Jobgrade;
import com.wyzz.hr.pojo.Location;
import com.wyzz.hr.spring.SpringBeanFactory;
import com.wyzz.hr.util.BaseCrit;
import com.wyzz.hr.util.DateUtil;
import com.wyzz.hr.util.Pager;
import com.wyzz.hr.util.impl.PropertiesFileConfigManager;
import com.wyzz.hr.util.output.FieldOperate;

public class SearchSalaryPaid extends CompAction {

	public SearchSalaryPaid() {
		salaryPaid = new Empsalarypay();
		page = new Pager();
		yearMonth = DateUtil.formatTodayToS("yyyy-MM");
		employee = new Employee();
		docStream = null;
		contentDisposition = null;
		serverFileName = null;
		msgDataError = "\u65E5\u671F\u683C\u5F0F\u9519\u8BEF\uFF01";//日期格式错误！
		decimalFormat = new DecimalFormat("00");
		outputIoName = "OEmpSalaryPay";
		beneAddtionalCount = Integer.valueOf(0);
	}

	public String execute() throws Exception {
		getDrillDownList();
		getHiddenList();
		String yearmonth = yearMonth.replaceAll("-", "");
		IEmpsalaryperiodBo salaryperiod = (IEmpsalaryperiodBo) getBean("empsalaryperiodBO");
		espdStatus = salaryperiod.getEspdStatus(yearmonth);
		if (espdStatus.intValue() == 3) {
			page.setSplit(false);
			setSalaryPaidList(new ArrayList());
			return "success";
		}
		DetachedCriteria dcPay = searchPay_DC();
		addCriteriaPay(dcPay, yearmonth);
		List payList = new ArrayList();
		List empList = new ArrayList();
		ISalaryPaidBo salaryPaidBo = (ISalaryPaidBo) getBean("salaryPaidBo");
		if ("exportBank".equals(searchOrExport)
				|| "exportSalary".equals(searchOrExport)
				|| "exportPayslip".equals(searchOrExport)
				|| "exportPayroll".equals(searchOrExport)) {
			payList = salaryPaidBo.findPayPaid(dcPay, null);
			if (payList == null || payList.size() == 0) {
				addActionError("\u65E0\u85AA\u8D44\u53D1\u653E\u6570\u636E\u53EF\u4EE5\u5BFC\u51FA\uFF01");
				return "success";
			} else {
				return exportData(payList);
			}
		}
		if ("noPaid".equals(searchEmpSalType)) {
			DetachedCriteria dcEmp = searchEmpWithConfig_DC();
			addCriteriaEmp(dcEmp, yearmonth);
			empList = salaryPaidBo.findPayNoPaid(dcPay, dcEmp, page);
		} else {
			payList = salaryPaidBo.findPayPaid(dcPay, page);
			if (payList != null && payList.size() > 0) {
				Employee tempEmp;
				for (Iterator i$ = payList.iterator(); i$.hasNext(); empList
						.add(tempEmp)) {
					Empsalarypay pay = (Empsalarypay) i$.next();
					tempEmp = pay.getEspEmpno();
					tempEmp.setEmpsalarypay(pay);
				}

			}
		}
		setSalaryPaidList(empList);
		return "success";
	}

	public String initPaid() throws Exception {
		String msgInitSucc = "\u91CD\u65B0\u521D\u59CB\u5316{0}\u5E74{1}\u6708\u7684\u85AA\u8D44\u6570\u636E\u6210\u529F\uFF01";//重新初始化{0}年{1}月的薪资数据成功！
		String year = "";
		String month = "";
		if (DateUtil.parseDateStrNoEx(yearMonth, "yyyy-MM") == null) {
			addErrorInfo(msgDataError);
			return "success";
		}
		String yearmonth = yearMonth.replaceAll("-", "");
		year = yearMonth.substring(0, 4);
		month = yearMonth.substring(4);
		ICompaplanBo compaplanBo = (ICompaplanBo) SpringBeanFactory
				.getBean("compaplanBo");
		if (compaplanBo.searchCompaplanSubmitStatus(yearmonth).intValue() > 0)
			compaplanBo.updateCompaplanForSlary(yearmonth, getCurrentEmpNo());
		DetachedCriteria dcConf = searchConfigWithEmp_DC();
		addCriteriaInit(dcConf, yearmonth);
		ISalaryconfBo salaryConfBo = (ISalaryconfBo) getBean("salaryconfBo");
		List configList = salaryConfBo.findConfig(dcConf, null);
		List payList = new ArrayList();
		Empsalarypay pay;
		for (Iterator i$ = configList.iterator(); i$.hasNext(); payList
				.add(pay)) {
			Empsalaryconfig config = (Empsalaryconfig) i$.next();
			config.decryEmpSalaryConf(config);
			pay = copyConfigToPay(config);
			pay.setEspYearmonth(yearmonth);
		}

		Empsalarypay payArray[] = (Empsalarypay[]) payList
				.toArray(new Empsalarypay[payList.size()]);
		
		System.out.println("sdsd"+payArray.length);
		
		setPayAdd(yearmonth, payArray);
		getDrillDownList();
		interpretPay(yearmonth, true, payArray);
		if (ObjectUtils.isEmpty(payArray)) {
			addErrorInfo(msgNoData, new Object[] {
					"null",
					(new StringBuilder()).append(yearmonth).append(
							"\u85AA\u8D44\u53D1\u653E").toString() });//薪资发放
			return "success";
		}
		payList = Arrays.asList(payArray);
		ISalaryPaidBo salaryPaidBo = (ISalaryPaidBo) getBean("salaryPaidBo");
		salaryPaidBo.batchInitPaidSave(yearmonth, payList);
		espdStatus = Integer.valueOf(0);
		DetachedCriteria dcPay = searchPay_DC();
		addCriteriaPay(dcPay, yearmonth);
		if ("noPaid".equals(searchEmpSalType)) {
			DetachedCriteria dcEmp = searchEmpWithConfig_DC();
			addCriteriaEmp(dcEmp, yearmonth);
			List paidEmpList = salaryPaidBo.findPayNoPaid(dcPay, dcEmp, page);
			setSalaryPaidList(paidEmpList);
		} else {
			payList = salaryPaidBo.findPayPaid(dcPay, page);
			if (payList != null && payList.size() > 0) {
				List empList = new ArrayList();
				Employee tempEmp;
				for (Iterator i$ = payList.iterator(); i$.hasNext(); empList
						.add(tempEmp)) {
					Empsalarypay pay1 = (Empsalarypay) i$.next();
					tempEmp = pay1.getEspEmpno();
					tempEmp.setEmpsalarypay(pay1);
				}

				setSalaryPaidList(empList);
			}
		}
		getHiddenList();
		addSuccessInfo(msgInitSucc, new Object[] { year, month });
		return "success";
	}

	private DetachedCriteria searchPay_DC() {
		DetachedCriteria dc = DetachedCriteria.forClass(Empsalarypay.class);
		dc.createAlias(Empsalarypay.PROP_ESP_DEPT, "dept", 1);
		dc.createAlias(Empsalarypay.PROP_ESP_PB_NO, "espPbNo", 1);
		dc.createAlias(Empsalarypay.PROP_ESP_JOBGRADE, "jobgrade", 1);
		dc.createAlias(Empsalarypay.PROP_ESP_ESAV_ID, "espEsavId", 1);
		dc.createAlias((new StringBuilder()).append("espEsavId.").append(
				Empsalaryacctversion.PROP_ESAV_ESAC).toString(), "esavEsac", 1);
		dc.createAlias(Empsalarypay.PROP_ESP_EMPCONFIG, "config", 1);
		dc.createAlias((new StringBuilder()).append("config.").append(
				Empsalaryconfig.PROP_ESC_ESAV_ID).toString(), "escEsavId", 1);
		dc.createAlias(Empsalarypay.PROP_ESP_EMPNO, "emp", 1);
		dc.createAlias((new StringBuilder()).append("emp.").append(
				Employee.PROP_EMP_DEPT_NO).toString(), "empDeptNo", 1);
		dc.createAlias((new StringBuilder()).append("emp.").append(
				Employee.PROP_EMP_PB_NO).toString(), "empPbNo", 1);
		dc.createAlias((new StringBuilder()).append("emp.").append(
				Employee.PROP_EMP_LOCATION_NO).toString(), "empLocationNo", 1);
		dc.createAlias((new StringBuilder()).append("emp.").append(
				Employee.PROP_EMP_TYPE).toString(), "empType", 1);
		dc.createAlias((new StringBuilder()).append("emp.").append(
				Employee.PROP_EMP_BENEFIT_TYPE).toString(), "benefitType", 1);
		return dc;
	}

	private void addCriteriaPay(DetachedCriteria dcPay, String yearmonth) {
		if ("SUB".equals(super.authorityCondition))
			addSubDC(dcPay, "emp", 2);
		BaseCrit.addStatusEmpDC(dcPay, "emp", yearmonth,
				new String[] { searchEmpSalType });
		dcPay.add(Restrictions.eq(Empsalarypay.PROP_ESP_YEARMONTH, yearmonth));
		BaseCrit.addEmpDC(dcPay, "emp", employee.getEmpName());
		BaseCrit.addDeptDC(dcPay, (new StringBuilder()).append("emp.").append(
				Employee.PROP_EMP_DEPT_NO).toString(), (new StringBuilder())
				.append("emp.").append(Employee.PROP_EMP_PB_NO).toString(),
				Integer.valueOf(1), employee.getEmpDeptNo());
		BaseCrit.addDC(dcPay, (new StringBuilder()).append("emp.").append(
				Employee.PROP_EMP_LOCATION_NO).toString(), Location.PROP_ID,
				new Object[] { employee.getEmpLocationNo() });
		BaseCrit.addDC(dcPay, (new StringBuilder()).append("emp.").append(
				Employee.PROP_EMP_TYPE).toString(), Emptype.PROP_ID,
				new Object[] { employee.getEmpType() });
		if (!"noPaid".equals(searchEmpSalType) && employee.getConfig() != null) {
			BaseCrit.addDC(dcPay, "espJobgrade", Jobgrade.PROP_ID,
					new Object[] { employee.getConfig().getEscJobgrade() });
			BaseCrit.addDC(dcPay, "espEsavId", Empsalaryacctversion.PROP_ID,
					new Object[] { employee.getConfig().getEscEsavId() });
			BaseCrit.addDC(dcPay, "espCostCenter", "eq",
					new String[] { employee.getConfig().getEscCostCenter() });
		}
	}

	private DetachedCriteria searchEmpWithConfig_DC() {
		DetachedCriteria dc = DetachedCriteria.forClass(Employee.class, "emp");
		dc.createAlias(Employee.PROP_CONFIG, "config", 1);
		dc.createAlias((new StringBuilder()).append("config.").append(
				Empsalaryconfig.PROP_ESC_ESAV_ID).toString(), "escEsavId", 1);
		dc
				.createAlias((new StringBuilder()).append("config.").append(
						Empsalaryconfig.PROP_ESC_JOBGRADE).toString(),
						"escJobgrade", 1);
		return dc;
	}

	private void addCriteriaEmp(DetachedCriteria dcEmp, String yearmonth) {
		if ("SUB".equals(super.authorityCondition))
			addSubDC(dcEmp, "", 2);
		BaseCrit.addStatusEmpDC(dcEmp, null, yearmonth, new String[] { "" });
		BaseCrit.addEmpDC(dcEmp, null, employee.getEmpName());
		BaseCrit.addDeptDC(dcEmp, Employee.PROP_EMP_DEPT_NO,
				Employee.PROP_EMP_PB_NO, Integer.valueOf(1), employee
						.getEmpDeptNo());
		BaseCrit.addDC(dcEmp, Employee.PROP_EMP_TYPE, Emptype.PROP_ID,
				new Object[] { employee.getEmpType() });
		BaseCrit.addDC(dcEmp, Employee.PROP_EMP_LOCATION_NO, Location.PROP_ID,
				new Object[] { employee.getEmpLocationNo() });
		if (employee.getConfig() != null) {
			BaseCrit.addDC(dcEmp, (new StringBuilder()).append("config.")
					.append(Empsalaryconfig.PROP_ESC_JOBGRADE).toString(),
					Jobgrade.PROP_ID, new Object[] { employee.getConfig()
							.getEscJobgrade() });
			BaseCrit.addDC(dcEmp, (new StringBuilder()).append("config.")
					.append(Empsalaryconfig.PROP_ESC_ESAV_ID).toString(),
					Empsalaryacctversion.PROP_ID, new Object[] { employee
							.getConfig().getEscEsavId() });
			BaseCrit.addDC(dcEmp, (new StringBuilder()).append("config.")
					.append(Empsalaryconfig.PROP_ESC_COST_CENTER).toString(),
					"eq", new String[] { employee.getConfig()
							.getEscCostCenter() });
		}
	}

	private DetachedCriteria searchConfigWithEmp_DC() {
		DetachedCriteria dc = DetachedCriteria.forClass(Empsalaryconfig.class);
		dc.createAlias(Empsalaryconfig.PROP_EMPLOYEE, "emp", 1);
		dc.createAlias((new StringBuilder()).append("emp.").append(
				Employee.PROP_EMP_BENEFIT_TYPE).toString(), "benefitType", 1);
		dc.createAlias(Empsalaryconfig.PROP_ESC_JOBGRADE, "jobgrade", 1);
		dc.createAlias(Empsalaryconfig.PROP_ESC_ESAV_ID, "escEsavId", 1);
		return dc;
	}

	private void addCriteriaInit(DetachedCriteria dcConf, String yearmonth) {
		if ("SUB".equals(super.authorityCondition))
			addSubDC(dcConf, "emp", 2);
		BaseCrit.addStatusEmpDC(dcConf, "emp", yearmonth, new String[] { "" });
	}

	public String exportData(List result) {
		if ("exportPayroll".equals(searchOrExport)
				&& espdStatus.intValue() == 2)
			try {
				IEmpsalarydatadefBo empsalarydatadefBo = (IEmpsalarydatadefBo) SpringBeanFactory
						.getBean("empsalarydatadefBo");
				List dataDefList = empsalarydatadefBo.findOutput(Integer
						.valueOf(1));
				ISalaryPaidBo salaryPaidBo = (ISalaryPaidBo) getBean("salaryPaidBo");
				List exportResult = salaryPaidBo.processForOutput(result,
						dataDefList);
				List fieldAddList = getFieldAddList(dataDefList);
				return downloadToExcel(exportResult, outputIoName,
						outmatchModelId, "empsalarypay", fieldAddList);
			} catch (Exception e) {
				addActionError("\u6570\u636E\u5BFC\u51FA\u5931\u8D25\uFF01");
				e.printStackTrace();
				return "success";
			}
		String downFileName = null;
		String filePath = FileOperate.getFileHomePath();
		String xslFileName = (new StringBuilder()).append("export-").append(
				FileOperate.buildFileName()).append(
				PropertiesFileConfigManager.getInstance().getProperty(
						"sys.saveDir.type").trim()).toString();
		filePath = (new StringBuilder()).append(filePath).append(xslFileName)
				.toString();
		File file;
		FileInputStream fileInputStream;
		try {
			if ("exportBank".equals(searchOrExport)
					&& espdStatus.intValue() == 2) {
				ExportSalaryToBank exportToBank = new ExportSalaryToBank(
						result, "\u5BFC\u51FA");
				exportToBank.export(filePath);
				downFileName = (new StringBuilder()).append(yearMonth).append(
						"salarytoBank.xls").toString();
			} else if ("exportSalary".equals(searchOrExport)) {
				Exportinfo exportSalary = new Exportinfo();
				IEmpSalaryAcctitemsBo esaitemsBo = (IEmpSalaryAcctitemsBo) SpringBeanFactory
						.getBean("empsalaryacctitemsBo");
				List titles[] = exportSalary.getSalarySheetAndTitle(result,
						esaitemsBo);
				List results[] = exportSalary.getSalaryResult(result, titles);
				ExportSalary export = new ExportSalary(results, titles, false);
				export.export(filePath);
				downFileName = (new StringBuilder()).append(yearMonth).append(
						"salary.xls").toString();
			} else if ("exportPayslip".equals(searchOrExport)
					&& espdStatus.intValue() == 2) {
				Exportinfo exportSalary = new Exportinfo();
				IEmpSalaryAcctitemsBo esaitemsBo = (IEmpSalaryAcctitemsBo) SpringBeanFactory
						.getBean("empsalaryacctitemsBo");
				List titles[] = exportSalary
						.getPayslipTitle(result, esaitemsBo);
				List results[] = exportSalary.getPayslipResult(result, titles);
				ExportPayslip export = new ExportPayslip(results, titles);
				export.export(filePath);
				downFileName = (new StringBuilder()).append(yearMonth).append(
						"payslip.xls").toString();
			} else {
				addActionError("\u6570\u636E\u5BFC\u51FA\u5931\u8D25\uFF01");
				return "success";
			}
		} catch (Exception e) {
			addActionError("\u6570\u636E\u5BFC\u51FA\u5931\u8D25\uFF01");
			e.printStackTrace();
			return "success";
		}
		file = new File(filePath);
		try {
			fileInputStream = new FileInputStream(file);
			setDocStream(fileInputStream);
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		setContentDisposition((new StringBuilder()).append("filename=\"")
				.append(downFileName).append("\"").toString());
		setServerFileName(filePath);
		clearErrorsAndMessages();
		return "download";
	}

	private List getFieldAddList(List datadefList) {
		List resultList = new ArrayList();
		for (int i = 0; i < datadefList.size(); i++) {
			Empsalarydatadef datadef = (Empsalarydatadef) datadefList.get(i);
			FieldOperate operate = new FieldOperate();
			operate.setColWidth(15);
			operate.setDataType("decimal");
			operate.setFieldName((new StringBuilder()).append("outPutList.")
					.append(datadef.getEsddId()).toString());
			operate.setShowName(datadef.getEsddName());
			resultList.add(operate);
		}

		return resultList;
	}

	public String confirmSubmit() throws Exception {
		System.out.println("jjjjjjjjjjjjjjjjjjj");
		if (DateUtil.parseDateStrNoEx(yearMonth, "yyyy-MM") == null) {
			addErrorInfo(msgDataError);
			return "success";
		} else {
			String yearmonth = yearMonth.replace("-", "");
			IEmpsalaryperiodBo salaryperiod = (IEmpsalaryperiodBo) getBean("empsalaryperiodBO");
			salaryperiod.updateConfirmSubmit(yearmonth, Integer.valueOf(1));
			addSuccessInfo("\u63D0\u4EA4\u6210\u529F\u3002");
			return "success";
		}
	}

	public String viewAllSalarypaid() throws Exception {
		if (DateUtil.parseDateStrNoEx(yearMonth, "yyyy-MM") == null) {
			addErrorInfo(msgDataError);
			return "success";
		}
		String yearmonth = yearMonth.replace("-", "");
		getDrillDownList();
		getHiddenList();
		IEmpsalaryperiodBo salaryperiod = (IEmpsalaryperiodBo) getBean("empsalaryperiodBO");
		Empsalaryperiod espd = salaryperiod.loadEspdStatus(yearmonth);
		if (espd != null)
			espdStatus = espd.getEspdStatus();
		ISalaryPaidBo salaryPaidBo = (ISalaryPaidBo) getBean("salaryPaidBo");
		setSalaryPaidConvergeList(salaryPaidBo.findNeedApprovePaids(departs,
				yearmonth, espd));
		return "success";
	}

	private void getDrillDownList() {
		departs = getDrillDown("Department", new String[] { "1" });
		locationList = getDrillDown("Location", new String[] { "1" });
		empTypeList = getDrillDown("EmpType", new String[] { "1" });
		jobgradeList = getDrillDown("Jobgrade", new String[0]);
		acctVersionList = getDrillDown("EmpSalaryAcct", new String[0]);
		costCenterList = getDrillDown("CostCenter", new String[0]);
	}

	private void getHiddenList() {
		if (DateUtil.parseDateStrNoEx(yearMonth, "yyyy-MM") == null) {
			return;
		} else {
			String yearmonth = yearMonth.replace("-", "");
			ICompaplanBo compaplanBo = (ICompaplanBo) SpringBeanFactory
					.getBean("compaplanBo");
			setCompaplanCounts(compaplanBo
					.searchCompaplanSubmitStatus(yearmonth));
			IEmpBenefitPlanBo ebpBo = (IEmpBenefitPlanBo) SpringBeanFactory
					.getBean("empbenefitplanBo");
			setBeneAddtionalCount(ebpBo.getBeneAddCount(yearmonth));
			ISalaryPaidBo salaryPaidBo = (ISalaryPaidBo) getBean("salaryPaidBo");
			empList = salaryPaidBo.searchEmployeeHasSalaryPay(yearmonth);
			return;
		}
	}

	public String approve() throws Exception {
		String msgIllegal = "\u975E\u6CD5\u53C2\u6570\uFF01\u5F53\u6708\u85AA\u8D44\u53D1\u653E\u6570\u636E\u5FC5\u987B\u4E3A\u5DF2\u63D0\u4EA4\u72B6\u6001\uFF01";
		String msgApprove = "\u85AA\u8D44\u53D1\u653E\u5BA1\u6838\u901A\u8FC7\u3002";
		String msgReject = "\u85AA\u8D44\u53D1\u653E\u5DF2\u9000\u56DE\u91CD\u505A\u3002";
		if (DateUtil.parseDateStrNoEx(yearMonth, "yyyy-MM") == null) {
			addErrorInfo(msgDataError);
			return "error";
		}
		String yearmonth = yearMonth.replace("-", "");
		IEmpsalaryperiodBo salaryperiod = (IEmpsalaryperiodBo) getBean("empsalaryperiodBO");
		if (status.intValue() == 2) {
			salaryperiod.updateConfirmSubmit(yearmonth, Integer.valueOf(2));
			espdStatus = Integer.valueOf(2);
			addSuccessInfo(msgApprove);
			return "success";
		}
		if (status.intValue() == 0) {
			salaryperiod.updateConfirmSubmit(yearmonth, Integer.valueOf(0));
			espdStatus = Integer.valueOf(0);
			addSuccessInfo(msgReject);
			return "success";
		} else {
			addErrorInfo(msgIllegal);
			return "error";
		}
	}

	public List convertResult(List result) {
		List convertResult = new ArrayList();
		Empsalarypay esp;
		for (Iterator i$ = result.iterator(); i$.hasNext(); convertResult
				.add(esp)) {
			Employee emp = (Employee) i$.next();
			esp = emp.getEmpsalarypay();
			if (esp == null)
				esp = new Empsalarypay();
			esp.setEspEmpno(emp);
		}

		return convertResult;
	}

	public Pager getPage() {
		return page;
	}

	public void setPage(Pager page) {
		this.page = page;
	}

	public Empsalarypay getSalaryPaid() {
		return salaryPaid;
	}

	public void setSalaryPaid(Empsalarypay salaryPaid) {
		this.salaryPaid = salaryPaid;
	}

	public List getSalaryPaidList() {
		return salaryPaidList;
	}

	public void setSalaryPaidList(List salaryPaidList) {
		this.salaryPaidList = salaryPaidList;
	}

	public List getSalaryPaidConvergeList() {
		return salaryPaidConvergeList;
	}

	public void setSalaryPaidConvergeList(List salaryPaidConvergeList) {
		this.salaryPaidConvergeList = salaryPaidConvergeList;
	}

	public List getDeparts() {
		return departs;
	}

	public void setDeparts(List departs) {
		this.departs = departs;
	}

	public String getEmp() {
		return emp;
	}

	public void setEmp(String emp) {
		this.emp = emp;
	}

	public Employee getEmployee() {
		return employee;
	}

	public void setEmployee(Employee employee) {
		this.employee = employee;
	}

	public Integer getEspdStatus() {
		return espdStatus;
	}

	public void setEspdStatus(Integer espdStatus) {
		this.espdStatus = espdStatus;
	}

	public Integer getStatus() {
		return status;
	}

	public void setStatus(Integer status) {
		this.status = status;
	}

	public List getEmpList() {
		return empList;
	}

	public void setEmpList(List empList) {
		this.empList = empList;
	}

	public List getEmpTypeList() {
		return empTypeList;
	}

	public void setEmpTypeList(List empTypeList) {
		this.empTypeList = empTypeList;
	}

	public String getContentDisposition() {
		return contentDisposition;
	}

	public void setContentDisposition(String contentDisposition) {
		this.contentDisposition = contentDisposition;
	}

	public FileInputStream getDocStream() {
		return docStream;
	}

	public void setDocStream(FileInputStream docStream) {
		this.docStream = docStream;
	}

	public String getSearchOrExport() {
		return searchOrExport;
	}

	public void setSearchOrExport(String searchOrExport) {
		this.searchOrExport = searchOrExport;
	}

	public List getJobgradeList() {
		return jobgradeList;
	}

	public void setJobgradeList(List jobgradeList) {
		this.jobgradeList = jobgradeList;
	}

	public void setLocationList(List locationList) {
		this.locationList = locationList;
	}

	public void setAcctVersionList(List acctVersionList) {
		this.acctVersionList = acctVersionList;
	}

	public List getCostCenterList() {
		return costCenterList;
	}

	public void setCostCenterList(List costCenterList) {
		this.costCenterList = costCenterList;
	}

	public String getServerFileName() {
		return serverFileName;
	}

	public void setServerFileName(String serverFileName) {
		this.serverFileName = serverFileName;
	}

	public Integer getCompaplanCounts() {
		return compaplanCounts;
	}

	public void setCompaplanCounts(Integer compaplanCounts) {
		this.compaplanCounts = compaplanCounts;
	}

	public String getSearchEmpSalType() {
		return searchEmpSalType;
	}

	public void setSearchEmpSalType(String searchEmpSalType) {
		this.searchEmpSalType = searchEmpSalType;
	}

	public List getLocationList() {
		return locationList;
	}

	public List getAcctVersionList() {
		return acctVersionList;
	}

	public String getOutmatchModelId() {
		return outmatchModelId;
	}

	public void setOutmatchModelId(String outmatchModelId) {
		this.outmatchModelId = outmatchModelId;
	}

	public String getOutputIoName() {
		return outputIoName;
	}

	public void setOutputIoName(String outputIoName) {
		this.outputIoName = outputIoName;
	}

	public Integer getBeneAddtionalCount() {
		return beneAddtionalCount;
	}

	public void setBeneAddtionalCount(Integer beneAddtionalCount) {
		this.beneAddtionalCount = beneAddtionalCount;
	}

	public String getYearMonth() {
		return yearMonth;
	}

	public void setYearMonth(String yearMonth) {
		this.yearMonth = yearMonth;
	}

	private static final long serialVersionUID = 0xfffffffebd50f49fL;
	private Empsalarypay salaryPaid;
	private Pager page;
	private List salaryPaidList;
	private List salaryPaidConvergeList;
	private String yearMonth;
	private String emp;
	private List jobgradeList;
	private List acctVersionList;
	private List costCenterList;
	private Integer espdStatus;
	private Employee employee;
	private Integer status;
	private Integer compaplanCounts;
	private String searchOrExport;
	private FileInputStream docStream;
	private String contentDisposition;
	private String serverFileName;
	private String searchEmpSalType;
	String msgDataError;
	private List empList;
	DecimalFormat decimalFormat;
	private String outmatchModelId;
	private String outputIoName;
	private Integer beneAddtionalCount;
}
